<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<title>Configuration - Screenbar Documentation</title>
	<link rel="stylesheet" type="text/css" media="screen" href="style.css">
</head>
<body>

<H1>Configuration</H1>
<a name="structure"/>

<P>When Screenbar loads, it creates top-level windows called panels. Panels may
be either floating windows or appbars. A floating window is defined by
specifying an X and Y position, width, and height; an appbar is defined by a
specifying an edge of the screen (top, bottom, left, or right), and a
thickness. Each panel has a name, which is a prefix for options affecting it.
A panel may be duplicated onto multiple monitors based on the (prefix)Monitors
setting. Screenbar also uses windows for drag windows (which follow the cursor
when performing a drag 'n drop), and for tooltips.</P>

<P>Each Screenbar window has a layout, which is a hierarchy of elements that
define what is shown on the panel and how it looks and behaves. Most
customization of Screenbar is done by adjusting the layout hierarchy and the
options on the elements. Each element has a name, which is used as a prefix
for options affecting it. Flow elements are the main way of positioning
things; they have other elements as children, and arrange them from left to
right or top to bottom. Children of a flow may also be duplicated for each
desk or each task; in that case, the duplicated element and its children know
which desk or task they belong to. This is called element context. Branch
elements switch between one of several children depending on RC variables and
on properties of the desk and task in the element context; this is the way to
make focused, minimized, and hovered elements look different.</P>

<P>Some elements, such as the system tray, may be drawn and managed by other
modules. These are child modules. Modules must specifically support being used
as child modules; modules which don't support being used this way will turn
themselves into top-level windows, and draw things on the wrong part of the
screen.</P>

<P>If there are a lot of tasks and/or desks open, it may happen that there
isn't enough space for the entire layout. In that case, Screenbar uses a size
fallback list, which names smaller substitutes for elements. Themes should
include a size fallback list and test what happens when opening many
windows.</P>

<P>Screenbar includes a default configuration, which puts a panel on the bottom
edge of each monitor, and includes a layout with effects for focus, minimized
and hovered windows and desks, mouse actions and a size fallback list. When
creating a theme, you can either make incremental changes to this config, or
define your own from scratch. If you're making incremental changes, simply
define any variables you wish to change in your theme.rc. If you want to start
from scratch, set sbUseDefaultConfig to false.</P>

<div id="navigation">
	<a href="overview.html">Previous Page</a>
	<a href="index.html">Index</a>
	<a href="bangs.html">Next Page</a>
</div>

</body>
</html>
